home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
lisp
/
kcl
/
kcl.lha
/
lsp
/
packlib.c
< prev
next >
Wrap
C/C++ Source or Header
|
1987-06-04
|
20KB
|
926 lines
/* (C) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. */
#include <cmpinclude.h>
#include "packlib.h"
init_packlib(start,size,data)char *start;int size;object data;
{ register object *base=vs_top;register object *sup=base+VM2;vs_top=sup;vs_check;
Cstart=start;Csize=size;Cdata=data;set_VV(VV,VM1,data);
base[0]= VV[0];
(void)simple_symlispcall_no_event(VV[32],base+0,1);
MM(VV[9],L2,start,size,data);
MF(VV[33],L3,start,size,data);
MM(VV[34],L4,start,size,data);
MM(VV[35],L5,start,size,data);
MM(VV[36],L6,start,size,data);
MF(VV[37],L7,start,size,data);
MF(VV[38],L8,start,size,data);
MF(VV[39],L9,start,size,data);
MF(VV[40],L10,start,size,data);
vs_top=vs_base=base;
}
/* macro definition for COERCE-TO-PACKAGE */
static L2()
{ register object *base=vs_base;
register object *sup=base+VM3;
vs_reserve(VM3);
check_arg(2);
vs_top=sup;
{object V1=base[0]->c.c_cdr;
if(endp(V1))invalid_macro_call();
base[2]= (V1->c.c_car);
V1=V1->c.c_cdr;
if(!endp(V1))invalid_macro_call();}
if(!(base[2]==VV[1])){
goto T4;}
vs_top=(vs_base=base+2)+1;
return;
T4:;
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[3]= vs_base[0];
base[4]= list(2,base[3],base[2]);
base[5]= make_cons(base[4],Cnil);
base[6]= list(2,VV[4],base[3]);
base[7]= list(2,VV[6],base[3]);
base[8]= list(2,VV[5],base[7]);
base[9]= list(4,VV[3],base[6],base[3],base[8]);
base[10]= list(3,VV[2],base[5],base[9]);
vs_top=(vs_base=base+10)+1;
return;
}
/* function definition for FIND-ALL-SYMBOLS */
static L3()
{ register object *base=vs_base;
register object *sup=base+VM4;
vs_reserve(VM4);
check_arg(1);
vs_top=sup;
TTL:;
if(!(type_of(base[0])==t_symbol)){
goto T7;}
base[1]= base[0];
vs_top=(vs_base=base+1)+1;
Lsymbol_name();
vs_top=sup;
base[0]= vs_base[0];
T7:;
vs_base=vs_top;
Llist_all_packages();
vs_top=sup;
base[2]= vs_base[0];
{object V2;
object V3= base[2];
if(endp(V3)){
base[3]= Cnil;
vs_top=(vs_base=base+3)+1;
return;}
base[1]=V2=MMcons(Cnil,Cnil);
T12:;
base[5]= base[0];
base[6]= (V3->c.c_car);
vs_top=(vs_base=base+5)+2;
Lfind_symbol();
Llist();
vs_top=sup;
base[4]= vs_base[0];
base[5]= car(base[4]);
base[6]= cadr(base[4]);
if(base[6]==VV[7]){
goto T21;}
if(!(base[6]==VV[8])){
goto T22;}
T21:;
(V2->c.c_cdr)= make_cons(base[5],Cnil);
goto T14;
T22:;
(V2->c.c_cdr)= Cnil;
T14:;
while(!endp(MMcdr(V2)))V2=MMcdr(V2);
if(endp(V3=MMcdr(V3))){
base[1]=base[1]->c.c_cdr;
vs_top=(vs_base=base+1)+1;
return;}
goto T12;}
}
/* macro definition for DO-SYMBOLS */
static L4()
{ register object *base=vs_base;
register object *sup=base+VM5;
vs_reserve(VM5);
check_arg(2);
vs_top=sup;
{object V4=base[0]->c.c_cdr;
if(endp(V4))invalid_macro_call();
{object V5= (V4->c.c_car);
if(endp(V5))invalid_macro_call();
base[2]= (V5->c.c_car);
V5=V5->c.c_cdr;
if(endp(V5)){
base[3]= VV[1];
} else {
base[3]= (V5->c.c_car);
V5=V5->c.c_cdr;}
if(endp(V5)){
base[4]= Cnil;
} else {
base[4]= (V5->c.c_car);
V5=V5->c.c_cdr;}
if(!endp(V5))invalid_macro_call();}
V4=V4->c.c_cdr;
base[5]= V4;}
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[6]= vs_base[0];
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[7]= vs_base[0];
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[8]= vs_base[0];
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[9]= vs_base[0];
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[10]= vs_base[0];
base[11]= Cnil;
base[12]= base[5];
symlispcall_no_event(VV[41],base+12,1);
if(vs_base<vs_top){
base[11]= vs_base[0];
vs_base++;
}else{
base[11]= Cnil;}
if(vs_base<vs_top){
base[5]= vs_base[0];
}else{
base[5]= Cnil;}
vs_top=sup;
base[12]= list(2,VV[9],base[3]);
base[13]= list(2,base[6],base[12]);
base[14]= list(3,base[13],base[2],base[8]);
base[15]= list(3,VV[13],base[2],Cnil);
base[16]= list(3,VV[12],base[15],base[4]);
base[17]= list(3,base[7],VV[11],base[16]);
base[18]= list(3,VV[14],base[7],VV[15]);
base[19]= list(3,VV[16],base[6],base[7]);
base[20]= list(3,VV[18],base[7],VV[15]);
base[21]= list(3,VV[17],base[6],base[20]);
base[22]= list(4,VV[3],base[18],base[19],base[21]);
base[23]= list(3,VV[13],base[8],base[22]);
base[24]= list(2,VV[20],base[8]);
base[25]= list(2,VV[21],base[10]);
base[26]= list(3,VV[19],base[24],base[25]);
base[27]= list(2,VV[22],base[8]);
base[28]= list(3,VV[13],base[2],base[27]);
base[29]= list(2,VV[23],base[8]);
base[30]= list(3,VV[13],base[8],base[29]);
base[31]= list(2,VV[21],base[9]);
base[32]= list(3,base[30],base[31],base[10]);
base[33]= append(base[5],base[32]);
base[34]= listA(7,VV[10],base[17],base[23],base[9],base[26],base[28],base[33]);
base[35]= make_cons(base[34],Cnil);
base[36]= append(base[11],base[35]);
base[37]= listA(3,VV[2],base[14],base[36]);
vs_top=(vs_base=base+37)+1;
return;
}
/* macro definition for DO-EXTERNAL-SYMBOLS */
static L5()
{ register object *base=vs_base;
register object *sup=base+VM6;
vs_reserve(VM6);
check_arg(2);
vs_top=sup;
{object V6=base[0]->c.c_cdr;
if(endp(V6))invalid_macro_call();
{object V7= (V6->c.c_car);
if(endp(V7))invalid_macro_call();
base[2]= (V7->c.c_car);
V7=V7->c.c_cdr;
if(endp(V7)){
base[3]= VV[1];
} else {
base[3]= (V7->c.c_car);
V7=V7->c.c_cdr;}
if(endp(V7)){
base[4]= Cnil;
} else {
base[4]= (V7->c.c_car);
V7=V7->c.c_cdr;}
if(!endp(V7))invalid_macro_call();}
V6=V6->c.c_cdr;
base[5]= V6;}
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[6]= vs_base[0];
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[7]= vs_base[0];
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[8]= vs_base[0];
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[9]= vs_base[0];
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[10]= vs_base[0];
base[11]= Cnil;
base[12]= base[5];
symlispcall_no_event(VV[41],base+12,1);
if(vs_base<vs_top){
base[11]= vs_base[0];
vs_base++;
}else{
base[11]= Cnil;}
if(vs_base<vs_top){
base[5]= vs_base[0];
}else{
base[5]= Cnil;}
vs_top=sup;
base[12]= list(2,VV[9],base[3]);
base[13]= list(2,base[6],base[12]);
base[14]= list(3,base[13],base[2],base[8]);
base[15]= list(3,VV[13],base[2],Cnil);
base[16]= list(3,VV[12],base[15],base[4]);
base[17]= list(3,base[7],VV[15],base[16]);
base[18]= list(3,VV[17],base[6],base[7]);
base[19]= list(3,VV[13],base[8],base[18]);
base[20]= list(2,VV[20],base[8]);
base[21]= list(2,VV[21],base[10]);
base[22]= list(3,VV[19],base[20],base[21]);
base[23]= list(2,VV[22],base[8]);
base[24]= list(3,VV[13],base[2],base[23]);
base[25]= list(2,VV[23],base[8]);
base[26]= list(3,VV[13],base[8],base[25]);
base[27]= list(2,VV[21],base[9]);
base[28]= list(3,base[26],base[27],base[10]);
base[29]= append(base[5],base[28]);
base[30]= listA(7,VV[10],base[17],base[19],base[9],base[22],base[24],base[29]);
base[31]= make_cons(base[30],Cnil);
base[32]= append(base[11],base[31]);
base[33]= listA(3,VV[2],base[14],base[32]);
vs_top=(vs_base=base+33)+1;
return;
}
/* macro definition for DO-ALL-SYMBOLS */
static L6()
{ register object *base=vs_base;
register object *sup=base+VM7;
vs_reserve(VM7);
check_arg(2);
vs_top=sup;
{object V8=base[0]->c.c_cdr;
if(endp(V8))invalid_macro_call();
{object V9= (V8->c.c_car);
if(endp(V9))invalid_macro_call();
base[2]= (V9->c.c_car);
V9=V9->c.c_cdr;
if(endp(V9)){
base[3]= Cnil;
} else {
base[3]= (V9->c.c_car);
V9=V9->c.c_cdr;}
if(!endp(V9))invalid_macro_call();}
V8=V8->c.c_cdr;
base[4]= V8;}
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[5]= vs_base[0];
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[6]= vs_base[0];
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[7]= vs_base[0];
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[8]= vs_base[0];
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[9]= vs_base[0];
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[10]= vs_base[0];
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[11]= vs_base[0];
base[12]= Cnil;
base[13]= base[4];
symlispcall_no_event(VV[41],base+13,1);
if(vs_base<vs_top){
base[12]= vs_base[0];
vs_base++;
}else{
base[12]= Cnil;}
if(vs_base<vs_top){
base[4]= vs_base[0];
}else{
base[4]= Cnil;}
vs_top=sup;
base[13]= list(2,VV[23],base[5]);
base[14]= list(3,base[5],VV[25],base[13]);
base[15]= make_cons(base[2],Cnil);
base[16]= make_cons(base[6],VV[26]);
base[17]= make_cons(base[7],Cnil);
base[18]= list(4,base[14],base[15],base[16],base[17]);
base[19]= list(2,VV[20],base[5]);
base[20]= list(3,VV[13],base[2],Cnil);
base[21]= list(3,base[19],base[20],base[3]);
base[22]= list(3,VV[27],base[6],VV[11]);
base[23]= list(2,VV[21],base[9]);
base[24]= list(3,VV[19],base[22],base[23]);
base[25]= list(3,VV[14],base[6],VV[15]);
base[26]= list(2,VV[22],base[5]);
base[27]= list(3,VV[16],base[26],base[6]);
base[28]= list(2,VV[22],base[5]);
base[29]= list(3,VV[18],base[6],VV[15]);
base[30]= list(3,VV[17],base[28],base[29]);
base[31]= list(4,VV[3],base[25],base[27],base[30]);
base[32]= list(3,VV[13],base[7],base[31]);
base[33]= list(2,VV[20],base[7]);
base[34]= list(2,VV[21],base[11]);
base[35]= list(3,VV[19],base[33],base[34]);
base[36]= list(2,VV[22],base[7]);
base[37]= list(3,VV[13],base[2],base[36]);
base[38]= list(2,VV[23],base[7]);
base[39]= list(3,VV[13],base[7],base[38]);
base[40]= list(2,VV[21],base[10]);
base[41]= list(2,VV[28],base[6]);
base[42]= list(3,VV[13],base[6],base[41]);
base[43]= list(2,VV[21],base[8]);
base[44]= list(6,base[39],base[40],base[11],base[42],base[43],base[9]);
base[45]= append(base[4],base[44]);
base[46]= listA(7,base[8],base[24],base[32],base[10],base[35],base[37],base[45]);
base[47]= append(base[12],base[46]);
base[48]= listA(4,VV[24],base[18],base[21],base[47]);
vs_top=(vs_base=base+48)+1;
return;
}
/* function definition for SUBSTRINGP */
static L7()
{ register object *base=vs_base;
register object *sup=base+VM8;
vs_reserve(VM8);
check_arg(2);
vs_top=sup;
TTL:;
base[5]= make_fixnum(length(base[1]));
base[6]= make_fixnum(length(base[0]));
base[2]= number_minus(base[5],base[6]);
base[3]= make_fixnum(length(base[0]));
base[4]= VV[29];
T60:;
if(!(number_compare(base[4],base[2])>0)){
goto T61;}
base[5]= Cnil;
vs_top=(vs_base=base+5)+1;
return;
T61:;
base[5]= base[0];
base[6]= base[1];
base[7]= VV[30];
base[8]= base[4];
base[9]= VV[31];
base[10]= number_plus(base[4],base[3]);
vs_top=(vs_base=base+5)+6;
Lstring_equal();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T65;}
base[5]= Ct;
vs_top=(vs_base=base+5)+1;
return;
T65:;
base[4]= one_plus(base[4]);
goto T60;
}
/* function definition for PRINT-SYMBOL-APROPOS */
static L8()
{ register object *base=vs_base;
register object *sup=base+VM9;
vs_reserve(VM9);
check_arg(1);
vs_top=sup;
TTL:;
(void)(prin1(base[0],Cnil));
base[1]= base[0];
vs_top=(vs_base=base+1)+1;
Lfboundp();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T78;}
base[1]= base[0];
vs_top=(vs_base=base+1)+1;
Lspecial_form_p();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T83;}
princ_str(" Special form",Cnil);
goto T78;
T83:;
base[1]= base[0];
vs_top=(vs_base=base+1)+1;
Lmacro_function();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T87;}
princ_str(" Macro",Cnil);
goto T78;
T87:;
princ_str(" Function",Cnil);
T78:;
base[1]= base[0];
vs_top=(vs_base=base+1)+1;
Lboundp();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T90;}
base[1]= base[0];
vs_top=(vs_base=base+1)+1;
Lconstantp();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T96;}
princ_str(" Constant: ",Cnil);
goto T94;
T96:;
princ_str(" has value: ",Cnil);
T94:;
base[2]= base[0];
vs_top=(vs_base=base+2)+1;
Lsymbol_value();
vs_top=sup;
base[1]= vs_base[0];
(void)(prin1(base[1],Cnil));
T90:;
base[1]= terpri(Cnil);
vs_top=(vs_base=base+1)+1;
return;
}
/* function definition for APROPOS */
static L9()
{ register object *base=vs_base;
register object *sup=base+VM10;
vs_reserve(VM10);
if(vs_top-vs_base<1) too_few_arguments();
if(vs_top-vs_base>2) too_many_arguments();
vs_base=vs_base+1;
if(vs_base>=vs_top){vs_top=sup;goto T101;}
vs_top=sup;
goto T102;
T101:;
base[1]= Cnil;
T102:;
base[0]= coerce_to_string(base[0]);
if((base[1])==Cnil){
goto T108;}
base[6]= base[1];
vs_top=(vs_base=base+6)+1;
Lpackagep();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T113;}
base[2]= base[1];
goto T111;
T113:;
base[6]= coerce_to_string(base[1]);
vs_top=(vs_base=base+6)+1;
Lfind_package();
vs_top=sup;
base[2]= vs_base[0];
T111:;
base[3]= Cnil;
base[4]= Cnil;
base[5]= VV[29];
T118:;
if(!(number_compare(base[5],VV[11])>=0)){
goto T119;}
base[3]= Cnil;
goto T110;
T119:;
if(!(number_compare(base[5],VV[15])<0)){
goto T130;}
base[6]= base[2];
base[7]= base[5];
vs_top=(vs_base=base+6)+2;
siLpackage_internal();
vs_top=sup;
base[4]= vs_base[0];
goto T128;
T130:;
base[6]= base[2];
base[7]= number_minus(base[5],VV[15]);
vs_top=(vs_base=base+6)+2;
siLpackage_external();
vs_top=sup;
base[4]= vs_base[0];
T128:;
T126:;
if((base[4])!=Cnil){
goto T136;}
goto T127;
T136:;
base[3]= car(base[4]);
base[6]= base[0];
base[7]= coerce_to_string(base[3]);
vs_top=(vs_base=base+6)+2;
L7();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T141;}
base[6]= base[3];
vs_top=(vs_base=base+6)+1;
L8();
vs_top=sup;
T141:;
base[4]= cdr(base[4]);
goto T126;
T127:;
base[5]= one_plus(base[5]);
goto T118;
T110:;
base[3]= base[1];
vs_top=(vs_base=base+3)+1;
Lpackage_use_list();
vs_top=sup;
base[2]= vs_base[0];
T155:;
if((base[2])!=Cnil){
goto T156;}
goto T106;
T156:;
base[6]= car(base[2]);
base[7]= base[6];
vs_top=(vs_base=base+7)+1;
Lpackagep();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T164;}
base[3]= base[6];
goto T161;
T164:;
base[7]= coerce_to_string(base[6]);
vs_top=(vs_base=base+7)+1;
Lfind_package();
vs_top=sup;
base[3]= vs_base[0];
T161:;
base[4]= Cnil;
base[5]= Cnil;
base[6]= VV[29];
T169:;
if(!(number_compare(base[6],VV[15])>=0)){
goto T170;}
base[4]= Cnil;
goto T160;
T170:;
base[7]= base[3];
base[8]= base[6];
vs_top=(vs_base=base+7)+2;
siLpackage_external();
vs_top=sup;
base[5]= vs_base[0];
T177:;
if((base[5])!=Cnil){
goto T182;}
goto T178;
T182:;
base[4]= car(base[5]);
base[7]= base[0];
base[8]= coerce_to_string(base[4]);
vs_top=(vs_base=base+7)+2;
L7();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T187;}
base[7]= base[4];
vs_top=(vs_base=base+7)+1;
L8();
vs_top=sup;
T187:;
base[5]= cdr(base[5]);
goto T177;
T178:;
base[6]= one_plus(base[6]);
goto T169;
T160:;
base[2]= cdr(base[2]);
goto T155;
T108:;
vs_base=vs_top;
Llist_all_packages();
vs_top=sup;
base[2]= vs_base[0];
base[3]= Cnil;
base[4]= VV[29];
base[5]= Cnil;
T203:;
if((base[2])!=Cnil){
goto T204;}
base[3]= Cnil;
goto T106;
T204:;
T211:;
if(!(number_compare(base[4],VV[11])>=0)){
goto T215;}
goto T214;
T215:;
if(!(number_compare(base[4],VV[15])<0)){
goto T220;}
base[6]= car(base[2]);
base[7]= base[4];
vs_top=(vs_base=base+6)+2;
siLpackage_internal();
vs_top=sup;
base[5]= vs_base[0];
goto T218;
T220:;
base[6]= car(base[2]);
base[7]= number_minus(base[4],VV[15]);
vs_top=(vs_base=base+6)+2;
siLpackage_external();
vs_top=sup;
base[5]= vs_base[0];
T218:;
T212:;
if((base[5])!=Cnil){
goto T226;}
goto T213;
T226:;
base[3]= car(base[5]);
base[6]= base[0];
base[7]= coerce_to_string(base[3]);
vs_top=(vs_base=base+6)+2;
L7();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T231;}
base[6]= base[3];
vs_top=(vs_base=base+6)+1;
L8();
vs_top=sup;
T231:;
base[5]= cdr(base[5]);
goto T212;
T213:;
base[4]= one_plus(base[4]);
goto T211;
T214:;
base[2]= cdr(base[2]);
base[4]= VV[29];
goto T203;
T106:;
vs_base=base+2;vs_top=base+2;
vs_base[0]=Cnil;
return;
}
/* function definition for APROPOS-LIST */
static L10()
{ register object *base=vs_base;
register object *sup=base+VM11;
vs_reserve(VM11);
if(vs_top-vs_base<1) too_few_arguments();
if(vs_top-vs_base>2) too_many_arguments();
vs_base=vs_base+1;
if(vs_base>=vs_top){vs_top=sup;goto T245;}
vs_top=sup;
goto T246;
T245:;
base[1]= Cnil;
T246:;
base[2]= Cnil;
base[2]= Cnil;
base[0]= coerce_to_string(base[0]);
if((base[1])==Cnil){
goto T254;}
base[7]= base[1];
vs_top=(vs_base=base+7)+1;
Lpackagep();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T259;}
base[3]= base[1];
goto T257;
T259:;
base[7]= coerce_to_string(base[1]);
vs_top=(vs_base=base+7)+1;
Lfind_package();
vs_top=sup;
base[3]= vs_base[0];
T257:;
base[4]= Cnil;
base[5]= Cnil;
base[6]= VV[29];
T264:;
if(!(number_compare(base[6],VV[11])>=0)){
goto T265;}
base[4]= Cnil;
goto T256;
T265:;
if(!(number_compare(base[6],VV[15])<0)){
goto T276;}
base[7]= base[3];
base[8]= base[6];
vs_top=(vs_base=base+7)+2;
siLpackage_internal();
vs_top=sup;
base[5]= vs_base[0];
goto T274;
T276:;
base[7]= base[3];
base[8]= number_minus(base[6],VV[15]);
vs_top=(vs_base=base+7)+2;
siLpackage_external();
vs_top=sup;
base[5]= vs_base[0];
T274:;
T272:;
if((base[5])!=Cnil){
goto T282;}
goto T273;
T282:;
base[4]= car(base[5]);
base[7]= base[0];
base[8]= coerce_to_string(base[4]);
vs_top=(vs_base=base+7)+2;
L7();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T287;}
base[2]= make_cons(base[4],base[2]);
T287:;
base[5]= cdr(base[5]);
goto T272;
T273:;
base[6]= one_plus(base[6]);
goto T264;
T256:;
base[4]= base[1];
vs_top=(vs_base=base+4)+1;
Lpackage_use_list();
vs_top=sup;
base[3]= vs_base[0];
T301:;
if((base[3])!=Cnil){
goto T302;}
goto T252;
T302:;
base[7]= car(base[3]);
base[8]= base[7];
vs_top=(vs_base=base+8)+1;
Lpackagep();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T310;}
base[4]= base[7];
goto T307;
T310:;
base[8]= coerce_to_string(base[7]);
vs_top=(vs_base=base+8)+1;
Lfind_package();
vs_top=sup;
base[4]= vs_base[0];
T307:;
base[5]= Cnil;
base[6]= Cnil;
base[7]= VV[29];
T315:;
if(!(number_compare(base[7],VV[11])>=0)){
goto T316;}
base[5]= Cnil;
goto T306;
T316:;
if(!(number_compare(base[7],VV[15])<0)){
goto T327;}
base[8]= base[4];
base[9]= base[7];
vs_top=(vs_base=base+8)+2;
siLpackage_internal();
vs_top=sup;
base[6]= vs_base[0];
goto T325;
T327:;
base[8]= base[4];
base[9]= number_minus(base[7],VV[15]);
vs_top=(vs_base=base+8)+2;
siLpackage_external();
vs_top=sup;
base[6]= vs_base[0];
T325:;
T323:;
if((base[6])!=Cnil){
goto T333;}
goto T324;
T333:;
base[5]= car(base[6]);
base[8]= base[0];
base[9]= coerce_to_string(base[5]);
vs_top=(vs_base=base+8)+2;
L7();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T338;}
base[2]= make_cons(base[5],base[2]);
T338:;
base[6]= cdr(base[6]);
goto T323;
T324:;
base[7]= one_plus(base[7]);
goto T315;
T306:;
base[3]= cdr(base[3]);
goto T301;
T254:;
vs_base=vs_top;
Llist_all_packages();
vs_top=sup;
base[3]= vs_base[0];
base[4]= Cnil;
base[5]= VV[29];
base[6]= Cnil;
T354:;
if((base[3])!=Cnil){
goto T355;}
base[4]= Cnil;
goto T252;
T355:;
T362:;
if(!(number_compare(base[5],VV[11])>=0)){
goto T366;}
goto T365;
T366:;
if(!(number_compare(base[5],VV[15])<0)){
goto T371;}
base[7]= car(base[3]);
base[8]= base[5];
vs_top=(vs_base=base+7)+2;
siLpackage_internal();
vs_top=sup;
base[6]= vs_base[0];
goto T369;
T371:;
base[7]= car(base[3]);
base[8]= number_minus(base[5],VV[15]);
vs_top=(vs_base=base+7)+2;
siLpackage_external();
vs_top=sup;
base[6]= vs_base[0];
T369:;
T363:;
if((base[6])!=Cnil){
goto T377;}
goto T364;
T377:;
base[4]= car(base[6]);
base[7]= base[0];
base[8]= coerce_to_string(base[4]);
vs_top=(vs_base=base+7)+2;
L7();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T382;}
base[2]= make_cons(base[4],base[2]);
T382:;
base[6]= cdr(base[6]);
goto T363;
T364:;
base[5]= one_plus(base[5]);
goto T362;
T365:;
base[3]= cdr(base[3]);
base[5]= VV[29];
goto T354;
T252:;
vs_top=(vs_base=base+2)+1;
return;
}